O script CopyToGDriver.sh é o módulo orquestrador principal do projeto CopyToGDriver.
Ele é responsável por detectar o sistema operacional, carregar os módulos auxiliares e executar o processo de sincronização completo entre pastas locais e o Google Drive (via rclone).
O fluxo principal do script é dividido nas seguintes etapas:
platform_detector.sh, include_loader.sh).Utils, Config, Sync, etc.).main() em CopyToGDriver_Sync.sh).| Variável | Descrição | Valor / Origem |
|---|---|---|
SCRIPT_DIR |
Diretório onde o script está localizado. | Detectado automaticamente |
PLATFORM |
Plataforma atual (linux, macos, windows). | Detectada via uname -s |
mod_file |
Caminho de cada módulo carregado. | ${SCRIPT_DIR}/CopyToGDriver_<mod>.sh |
detect_platform()Detecta automaticamente o sistema operacional e define a variável PLATFORM.
Retornos possíveis:
linuxmacoswindowsunknownExemplo de uso:
PLATFORM=$(detect_platform)
normalize_path(path)Normaliza um caminho de arquivo de acordo com o sistema operacional.
/c/Users/... para C:\Users\...Exemplo:
normalize_path "/c/Users/Paulo/docs"
# Saída: C:\Users\Paulo\docs
verify_dependencies()Verifica a existência de todos os módulos obrigatórios do CopyToGDriver.
Caso algum esteja ausente, exibe um erro e encerra a execução.
Módulos obrigatórios:
CopyToGDriver_Utils.shCopyToGDriver_Config.shCopyToGDriver_ConfigFunctions.shCopyToGDriver_Checks.shCopyToGDriver_Cache.shCopyToGDriver_Setup.shCopyToGDriver_Sync.shExemplo de uso isolado:
./CopyToGDriver.sh --check-only
Os módulos são carregados dinamicamente com base em seus nomes.
O script utiliza source para incluir cada módulo, permitindo reutilização e modularidade.
for mod in Utils Config ConfigFunctions Checks Cache Setup Sync; do
source "$SCRIPT_DIR/CopyToGDriver_${mod}.sh"
done
Caso um módulo não seja encontrado, é exibido um aviso, mas o processo continua se possível.
A execução principal é delegada à função main(), definida no módulo CopyToGDriver_Sync.sh.
O script verifica se a função main está disponível antes de chamá-la:
if declare -f main >/dev/null; then
main "$@"
else
echo "❌ ERRO: Função 'main' não encontrada."
exit 1
fi
| Parâmetro | Descrição |
|---|---|
--check-only |
Apenas verifica os módulos e dependências, sem executar sincronização. |
| (demais parâmetros) | São repassados ao módulo principal (CopyToGDriver_Sync.sh). |
CopyToGDriver/
├── CopyToGDriver.sh # Script principal (orquestrador)
├── platform_detector.sh # Detector de plataforma
├── include_loader.sh # Carregador de módulos
├── CopyToGDriver_Utils.sh # Funções utilitárias
├── CopyToGDriver_Config.sh # Configurações base
├── CopyToGDriver_ConfigFunctions.sh# Parser de parâmetros
├── CopyToGDriver_Checks.sh # Verificações de ambiente
├── CopyToGDriver_Cache.sh # Gerenciamento de cache
├── CopyToGDriver_Setup.sh # Instalação e inicialização
└── CopyToGDriver_Sync.sh # Execução da sincronização principal
--check-only)log_info()# Verificar módulos e dependências apenas
./CopyToGDriver.sh --check-only
# Executar sincronização completa
./CopyToGDriver.sh --local-folder ./docs --remote-folder backups/docs
| Campo | Valor |
|---|---|
| Script | CopyToGDriver.sh |
| Versão | 0.2.0 |
| Autores | Paulo SSPacheco + ChatGPT (GPT-5) |
| Data | 01/11/2025 |
| Licença | Uso pessoal / interno |
© 2025 Paulo SSPacheco + ChatGPT (GPT-5) — Todos os direitos reservados.